{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 注释"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 使用文本框进行注释"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "先看一个简单的例子："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa0396d8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy.random\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "fig = plt.figure(1, figsize=(5,5))\n",
    "fig.clf()\n",
    "\n",
    "ax = fig.add_subplot(111)\n",
    "ax.set_aspect(1)\n",
    "\n",
    "x1 = -1 + numpy.random.randn(100)\n",
    "y1 = -1 + numpy.random.randn(100)\n",
    "x2 = 1. + numpy.random.randn(100)\n",
    "y2 = 1. + numpy.random.randn(100)\n",
    "\n",
    "ax.scatter(x1, y1, color=\"r\")\n",
    "ax.scatter(x2, y2, color=\"g\")\n",
    "\n",
    "# 加上两个文本框\n",
    "bbox_props = dict(boxstyle=\"round\", fc=\"w\", ec=\"0.5\", alpha=0.9)\n",
    "ax.text(-2, -2, \"Sample A\", ha=\"center\", va=\"center\", size=20,\n",
    "        bbox=bbox_props)\n",
    "ax.text(2, 2, \"Sample B\", ha=\"center\", va=\"center\", size=20,\n",
    "        bbox=bbox_props)\n",
    "\n",
    "# 加上一个箭头文本框\n",
    "bbox_props = dict(boxstyle=\"rarrow\", fc=(0.8,0.9,0.9), ec=\"b\", lw=2)\n",
    "t = ax.text(0, 0, \"Direction\", ha=\"center\", va=\"center\", rotation=45,\n",
    "            size=15,\n",
    "            bbox=bbox_props)\n",
    "\n",
    "bb = t.get_bbox_patch()\n",
    "bb.set_boxstyle(\"rarrow\", pad=0.6)\n",
    "\n",
    "ax.set_xlim(-4, 4)\n",
    "ax.set_ylim(-4, 4)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`text()` 函数接受 `bbox` 参数来绘制文本框。\n",
    "```python\n",
    "bbox_props = dict(boxstyle=\"rarrow,pad=0.3\", fc=\"cyan\", ec=\"b\", lw=2)\n",
    "t = ax.text(0, 0, \"Direction\", ha=\"center\", va=\"center\", rotation=45,\n",
    "            size=15,\n",
    "            bbox=bbox_props)\n",
    "```\n",
    "\n",
    "可以这样来获取这个文本框，并对其参数进行修改：\n",
    "```python\n",
    "bb = t.get_bbox_patch()\n",
    "bb.set_boxstyle(\"rarrow\", pad=0.6)\n",
    "```\n",
    "\n",
    "可用的文本框风格有：\n",
    "\n",
    "class|name|attrs\n",
    "---|---|---\n",
    "LArrow\t|larrow\t|pad=0.3\n",
    "RArrow\t|rarrow\t|pad=0.3\n",
    "Round\t|round\t|pad=0.3,rounding_size=None\n",
    "Round4\t|round4\t|pad=0.3,rounding_size=None\n",
    "Roundtooth\t|roundtooth\t|pad=0.3,tooth_size=None\n",
    "Sawtooth\t|sawtooth\t|pad=0.3,tooth_size=None\n",
    "Square\t|square\t|pad=0.3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nRK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa19a710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.patches as mpatch\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "styles = mpatch.BoxStyle.get_styles()\n",
    "\n",
    "figheight = (len(styles)+.5)\n",
    "fig1 = plt.figure(figsize=(4/1.5, figheight/1.5))\n",
    "fontsize = 0.3 * 72\n",
    "ax = fig1.add_subplot(111)\n",
    "\n",
    "for i, (stylename, styleclass) in enumerate(styles.items()):\n",
    "    ax.text(0.5, (float(len(styles)) - 0.5 - i)/figheight, stylename,\n",
    "              ha=\"center\",\n",
    "              size=fontsize,\n",
    "              transform=fig1.transFigure,\n",
    "              bbox=dict(boxstyle=stylename, fc=\"w\", ec=\"k\"))\n",
    "\n",
    "# 去掉轴的显示\n",
    "ax.spines['right'].set_color('none')\n",
    "ax.spines['top'].set_color('none')\n",
    "ax.spines['left'].set_color('none')\n",
    "ax.spines['bottom'].set_color('none')\n",
    "plt.xticks([])\n",
    "plt.yticks([])\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "各个风格的文本框如上图所示。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 使用箭头进行注释"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa396080>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(1, figsize=(3,3))\n",
    "ax = plt.subplot(111)\n",
    "\n",
    "ax.annotate(\"\",\n",
    "            xy=(0.2, 0.2), xycoords='data',\n",
    "            xytext=(0.8, 0.8), textcoords='data',\n",
    "            arrowprops=dict(arrowstyle=\"->\",\n",
    "                            connectionstyle=\"arc3\"), \n",
    "            )\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "之前介绍了 `annotate` 中 `xy, xycoords, xytext, textcoords` 参数的含义，通常我们把 `xy` 设在 `data` 坐标系，把 `xytext` 设在 `offset` 即以注释点为原点的参考系。\n",
    "\n",
    "箭头显示是可选的，用 `arrowprops` 参数来指定，接受一个字典作为参数。\n",
    "\n",
    "不同类型的绘制箭头方式："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa3a2f28>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.patches as mpatches\n",
    "\n",
    "x1, y1 = 0.3, 0.3\n",
    "x2, y2 = 0.7, 0.7\n",
    "\n",
    "fig = plt.figure(1, figsize=(8,3))\n",
    "fig.clf()\n",
    "from mpl_toolkits.axes_grid.axes_grid import AxesGrid\n",
    "from mpl_toolkits.axes_grid.anchored_artists import AnchoredText\n",
    "\n",
    "#from matplotlib.font_manager import FontProperties\n",
    "\n",
    "def add_at(ax, t, loc=2):\n",
    "    fp = dict(size=10)\n",
    "    _at = AnchoredText(t, loc=loc, prop=fp)\n",
    "    ax.add_artist(_at)\n",
    "    return _at\n",
    "\n",
    "\n",
    "grid = AxesGrid(fig, 111, (1, 4), label_mode=\"1\", share_all=True)\n",
    "\n",
    "grid[0].set_autoscale_on(False)\n",
    "\n",
    "ax = grid[0]\n",
    "ax.plot([x1, x2], [y1, y2], \".\")\n",
    "el = mpatches.Ellipse((x1, y1), 0.3, 0.4, angle=30, alpha=0.2)\n",
    "ax.add_artist(el)\n",
    "ax.annotate(\"\",\n",
    "            xy=(x1, y1), xycoords='data',\n",
    "            xytext=(x2, y2), textcoords='data',\n",
    "            arrowprops=dict(arrowstyle=\"-\", #linestyle=\"dashed\",\n",
    "                            color=\"0.5\",\n",
    "                            patchB=None,\n",
    "                            shrinkB=0,\n",
    "                            connectionstyle=\"arc3,rad=0.3\",\n",
    "                            ),\n",
    "            )\n",
    "\n",
    "add_at(ax, \"connect\", loc=2)\n",
    "\n",
    "ax = grid[1]\n",
    "ax.plot([x1, x2], [y1, y2], \".\")\n",
    "el = mpatches.Ellipse((x1, y1), 0.3, 0.4, angle=30, alpha=0.2)\n",
    "ax.add_artist(el)\n",
    "ax.annotate(\"\",\n",
    "            xy=(x1, y1), xycoords='data',\n",
    "            xytext=(x2, y2), textcoords='data',\n",
    "            arrowprops=dict(arrowstyle=\"-\", #linestyle=\"dashed\",\n",
    "                            color=\"0.5\",\n",
    "                            patchB=el,\n",
    "                            shrinkB=0,\n",
    "                            connectionstyle=\"arc3,rad=0.3\",\n",
    "                            ),\n",
    "            )\n",
    "\n",
    "add_at(ax, \"clip\", loc=2)\n",
    "\n",
    "\n",
    "ax = grid[2]\n",
    "ax.plot([x1, x2], [y1, y2], \".\")\n",
    "el = mpatches.Ellipse((x1, y1), 0.3, 0.4, angle=30, alpha=0.2)\n",
    "ax.add_artist(el)\n",
    "ax.annotate(\"\",\n",
    "            xy=(x1, y1), xycoords='data',\n",
    "            xytext=(x2, y2), textcoords='data',\n",
    "            arrowprops=dict(arrowstyle=\"-\", #linestyle=\"dashed\",\n",
    "                            color=\"0.5\",\n",
    "                            patchB=el,\n",
    "                            shrinkB=5,\n",
    "                            connectionstyle=\"arc3,rad=0.3\",\n",
    "                            ),\n",
    "            )\n",
    "\n",
    "add_at(ax, \"shrink\", loc=2)\n",
    "\n",
    "\n",
    "ax = grid[3]\n",
    "ax.plot([x1, x2], [y1, y2], \".\")\n",
    "el = mpatches.Ellipse((x1, y1), 0.3, 0.4, angle=30, alpha=0.2)\n",
    "ax.add_artist(el)\n",
    "ax.annotate(\"\",\n",
    "            xy=(x1, y1), xycoords='data',\n",
    "            xytext=(x2, y2), textcoords='data',\n",
    "            arrowprops=dict(arrowstyle=\"fancy\", #linestyle=\"dashed\",\n",
    "                            color=\"0.5\",\n",
    "                            patchB=el,\n",
    "                            shrinkB=5,\n",
    "                            connectionstyle=\"arc3,rad=0.3\",\n",
    "                            ),\n",
    "            )\n",
    "\n",
    "add_at(ax, \"mutate\", loc=2)\n",
    "\n",
    "grid[0].set_xlim(0, 1)\n",
    "grid[0].set_ylim(0, 1)\n",
    "grid[0].axis[\"bottom\"].toggle(ticklabels=False)\n",
    "grid[0].axis[\"left\"].toggle(ticklabels=False)\n",
    "fig.subplots_adjust(left=0.05, right=0.95, bottom=0.05, top=0.95)\n",
    "\n",
    "plt.draw()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "字典中，`connectionstyle` 参数控制路径的风格：\n",
    "\n",
    "Name | Attr\n",
    "----|----\n",
    "angle|\tangleA=90,angleB=0,rad=0.0\n",
    "angle3|\tangleA=90,angleB=0\n",
    "arc|\tangleA=0,angleB=0,armA=None,armB=None,rad=0.0\n",
    "arc3|\trad=0.0\n",
    "bar|\tarmA=0.0,armB=0.0,fraction=0.3,angle=None"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x3bdae80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.patches as mpatches\n",
    "\n",
    "fig = plt.figure(1, figsize=(8,5))\n",
    "fig.clf()\n",
    "from mpl_toolkits.axes_grid.axes_grid import AxesGrid\n",
    "from mpl_toolkits.axes_grid.anchored_artists import AnchoredText\n",
    "\n",
    "#from matplotlib.font_manager import FontProperties\n",
    "\n",
    "def add_at(ax, t, loc=2):\n",
    "    fp = dict(size=8)\n",
    "    _at = AnchoredText(t, loc=loc, prop=fp)\n",
    "    ax.add_artist(_at)\n",
    "    return _at\n",
    "\n",
    "\n",
    "grid = AxesGrid(fig, 111, (3, 5), label_mode=\"1\", share_all=True)\n",
    "\n",
    "grid[0].set_autoscale_on(False)\n",
    "\n",
    "\n",
    "x1, y1 = 0.3, 0.3\n",
    "x2, y2 = 0.7, 0.7\n",
    "\n",
    "\n",
    "def demo_con_style(ax, connectionstyle, label=None):\n",
    "\n",
    "    if label is None:\n",
    "        label = connectionstyle\n",
    "\n",
    "    x1, y1 = 0.3, 0.2\n",
    "    x2, y2 = 0.8, 0.6\n",
    "\n",
    "    ax.plot([x1, x2], [y1, y2], \".\")\n",
    "    ax.annotate(\"\",\n",
    "                xy=(x1, y1), xycoords='data',\n",
    "                xytext=(x2, y2), textcoords='data',\n",
    "                arrowprops=dict(arrowstyle=\"->\", #linestyle=\"dashed\",\n",
    "                                color=\"0.5\",\n",
    "                                shrinkA=5, shrinkB=5,\n",
    "                                patchA=None,\n",
    "                                patchB=None,\n",
    "                                connectionstyle=connectionstyle,\n",
    "                                ),\n",
    "                )\n",
    "\n",
    "    add_at(ax, label, loc=2)\n",
    "\n",
    "column = grid.axes_column[0]\n",
    "\n",
    "demo_con_style(column[0], \"angle3,angleA=90,angleB=0\",\n",
    "               label=\"angle3,\\nangleA=90,\\nangleB=0\")\n",
    "demo_con_style(column[1], \"angle3,angleA=0,angleB=90\",\n",
    "               label=\"angle3,\\nangleA=0,\\nangleB=90\")\n",
    "\n",
    "\n",
    "\n",
    "column = grid.axes_column[1]\n",
    "\n",
    "demo_con_style(column[0], \"arc3,rad=0.\")\n",
    "demo_con_style(column[1], \"arc3,rad=0.3\")\n",
    "demo_con_style(column[2], \"arc3,rad=-0.3\")\n",
    "\n",
    "\n",
    "\n",
    "column = grid.axes_column[2]\n",
    "\n",
    "demo_con_style(column[0], \"angle,angleA=-90,angleB=180,rad=0\",\n",
    "               label=\"angle,\\nangleA=-90,\\nangleB=180,\\nrad=0\")\n",
    "demo_con_style(column[1], \"angle,angleA=-90,angleB=180,rad=5\",\n",
    "               label=\"angle,\\nangleA=-90,\\nangleB=180,\\nrad=5\")\n",
    "demo_con_style(column[2], \"angle,angleA=-90,angleB=10,rad=5\",\n",
    "               label=\"angle,\\nangleA=-90,\\nangleB=10,\\nrad=0\")\n",
    "\n",
    "\n",
    "column = grid.axes_column[3]\n",
    "\n",
    "demo_con_style(column[0], \"arc,angleA=-90,angleB=0,armA=30,armB=30,rad=0\",\n",
    "               label=\"arc,\\nangleA=-90,\\nangleB=0,\\narmA=30,\\narmB=30,\\nrad=0\")\n",
    "demo_con_style(column[1], \"arc,angleA=-90,angleB=0,armA=30,armB=30,rad=5\",\n",
    "               label=\"arc,\\nangleA=-90,\\nangleB=0,\\narmA=30,\\narmB=30,\\nrad=5\")\n",
    "demo_con_style(column[2], \"arc,angleA=-90,angleB=0,armA=0,armB=40,rad=0\",\n",
    "               label=\"arc,\\nangleA=-90,\\nangleB=0,\\narmA=0,\\narmB=40,\\nrad=0\")\n",
    "\n",
    "\n",
    "column = grid.axes_column[4]\n",
    "\n",
    "demo_con_style(column[0], \"bar,fraction=0.3\",\n",
    "               label=\"bar,\\nfraction=0.3\")\n",
    "demo_con_style(column[1], \"bar,fraction=-0.3\",\n",
    "               label=\"bar,\\nfraction=-0.3\")\n",
    "demo_con_style(column[2], \"bar,angle=180,fraction=-0.2\",\n",
    "               label=\"bar,\\nangle=180,\\nfraction=-0.2\")\n",
    "\n",
    "\n",
    "#demo_con_style(column[1], \"arc3,rad=0.3\")\n",
    "#demo_con_style(column[2], \"arc3,rad=-0.3\")\n",
    "\n",
    "\n",
    "grid[0].set_xlim(0, 1)\n",
    "grid[0].set_ylim(0, 1)\n",
    "grid.axes_llc.axis[\"bottom\"].toggle(ticklabels=False)\n",
    "grid.axes_llc.axis[\"left\"].toggle(ticklabels=False)\n",
    "fig.subplots_adjust(left=0.05, right=0.95, bottom=0.05, top=0.95)\n",
    "\n",
    "plt.draw()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`arrowstyle` 参数控制小箭头的风格：\n",
    "\n",
    "Name | Attrs\n",
    "--- |---\n",
    "`-`\t|None\n",
    "`->`\t|head_length=0.4,head_width=0.2\n",
    "`-[`\t|widthB=1.0,lengthB=0.2,angleB=None\n",
    "&#166;`-`&#166;\t|widthA=1.0,widthB=1.0\n",
    "`-`&#166;`>`\t|head_length=0.4,head_width=0.2\n",
    "`<-`\t|head_length=0.4,head_width=0.2\n",
    "`<->`\t|head_length=0.4,head_width=0.2\n",
    "`<`&#166;`-`\t|head_length=0.4,head_width=0.2\n",
    "`<`&#166;-&#166;`>`\t|head_length=0.4,head_width=0.2\n",
    "`fancy`\t|head_length=0.4,head_width=0.4,tail_width=0.4\n",
    "`simple`\t|head_length=0.5,head_width=0.5,tail_width=0.2\n",
    "`wedge`\t|tail_width=0.3,shrink_factor=0.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa555f98>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.patches as mpatches\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "styles = mpatches.ArrowStyle.get_styles()\n",
    "\n",
    "ncol=2\n",
    "nrow = (len(styles)+1) // ncol\n",
    "figheight = (nrow+0.5)\n",
    "fig1 = plt.figure(1, (4.*ncol/1.5, figheight/1.5))\n",
    "fontsize = 0.2 * 70\n",
    "\n",
    "\n",
    "ax = fig1.add_axes([0, 0, 1, 1], frameon=False, aspect=1.)\n",
    "\n",
    "ax.set_xlim(0, 4*ncol)\n",
    "ax.set_ylim(0, figheight)\n",
    "\n",
    "def to_texstring(s):\n",
    "    s = s.replace(\"<\", r\"$<$\")\n",
    "    s = s.replace(\">\", r\"$>$\")\n",
    "    s = s.replace(\"|\", r\"$|$\")\n",
    "    return s\n",
    "\n",
    "for i, (stylename, styleclass) in enumerate(sorted(styles.items())):\n",
    "    x = 3.2 + (i//nrow)*4\n",
    "    y = (figheight - 0.7 - i%nrow) # /figheight\n",
    "    p = mpatches.Circle((x, y), 0.2, fc=\"w\")\n",
    "    ax.add_patch(p)\n",
    "\n",
    "    ax.annotate(to_texstring(stylename), (x, y),\n",
    "                (x-1.2, y),\n",
    "                #xycoords=\"figure fraction\", textcoords=\"figure fraction\",\n",
    "                ha=\"right\", va=\"center\",\n",
    "                size=fontsize,\n",
    "                arrowprops=dict(arrowstyle=stylename,\n",
    "                                patchB=p,\n",
    "                                shrinkA=5,\n",
    "                                shrinkB=5,\n",
    "                                fc=\"w\", ec=\"k\",\n",
    "                                connectionstyle=\"arc3,rad=-0.05\",\n",
    "                                ),\n",
    "                bbox=dict(boxstyle=\"square\", fc=\"w\"))\n",
    "\n",
    "ax.xaxis.set_visible(False)\n",
    "ax.yaxis.set_visible(False)\n",
    "\n",
    "\n",
    "\n",
    "plt.draw()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
